package model

// 定义系统配置 .\manifest\config\config.yaml

type CoreConfigUpload struct {
	Host              string
	StaticPath        string
	UploadDIR         string
	AllowExtensions   []string
	AllowExtensionMap map[string]bool
	MaxSize           int64
}

// CoreConfigFileUpload 文件上传相关配置
type CoreConfigFileUpload struct {
	Common     CoreConfigFileUploadCommon `yaml:"common"`
	Local      LocalFileServerConfig      `yaml:"local"`
	AliYunOSS  AliYunOSSConfig            `yaml:"aliYunOss"`
	TenCentCos TenCentCosConfig           `yaml:"tenCentCos"`
}

// CoreConfigFileUploadCommon 共有配置
type CoreConfigFileUploadCommon struct {
	FileServerUploadMaxSize         int64  `yaml:"fileServerUploadMaxSize"`
	FileServerUploadAllowExtensions string `yaml:"fileServerUploadAllowExtensions"`
}

// LocalFileServerConfig 代表本地文件服务器的配置
type LocalFileServerConfig struct {
	FileServerHost               string `yaml:"fileServerHost"`               // 文件服务Host
	FileServerDIR                string `yaml:"fileServerDIR"`                // 文件服务存储路径
	FileServerStaticURIPath      string `yaml:"fileServerStaticURIPath"`      // 文件服务路由前缀URI
	FileServerEnabledIndexFolder bool   `yaml:"fileServerEnabledIndexFolder"` // 文件服务是否可展示目录列表
}

// AliYunOSSConfig 代表阿里云 OSS 的配置
type AliYunOSSConfig struct {
	Endpoint        string `yaml:"endpoint"`        // OSS endpoint
	AccessKeyId     string `yaml:"accessKeyId"`     // 访问密钥 ID
	AccessKeySecret string `yaml:"accessKeySecret"` // 访问密钥 Secret
	BucketName      string `yaml:"bucketName"`      // Bucket 名称
	BucketUrl       string `yaml:"bucketUrl"`       // Bucket URL
	BasePath        string `yaml:"basePath"`        // 基础路径
}

// TenCentCosConfig 代表腾讯云 cos 的配置
type TenCentCosConfig struct {
	Endpoint        string `yaml:"endpoint"`        // OSS endpoint
	AccessKeyId     string `yaml:"accessKeyId"`     // 访问密钥 ID
	AccessKeySecret string `yaml:"accessKeySecret"` // 访问密钥 Secret
	BucketName      string `yaml:"bucketName"`      // Bucket 名称
	BucketUrl       string `yaml:"bucketUrl"`       // Bucket URL
	BasePath        string `yaml:"basePath"`        // 基础路径
}
